#include <iostream>
using namespace std;
class Test
{
private:
    int x;
public:
    Test(int x)
    {
        this->x = x;
        cout << "object create Test(int x)" << endl;
    }
    Test()
    {
        x = 0;
        cout << "object create  Test()" << endl;
    }
    void init(int x)
    {
        this->x = x;
        cout << "object create init" << endl;
    }
    ~Test()
    {
        cout << "object free" << endl;
    }
    int GetX()
    {
        return x;
    }
};

int main()
{
    //1.我们按照C++编译器提供的初始化对象和显示的初始化对象
    Test a(10);
    Test b;      //显示创建对象但是还是调用无参构造函数 ,之后显示调用了初始化函数
    b.init(10);
    Test c = (10);
    //创建对象数组 (使用构造函数)
    Test arr[3] = {Test(10),Test(),Test()};
    //创建对象数组 (使用显示的初始化函数)
    Test brr[3];   //创建了3个对象 ,默认值
    cout<<brr[0].GetX()<<endl;
    brr[0].init(10);
    cout<<brr[0].GetX()<<endl;
    return 0;
}
